home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 25 / AMIGAplus Sonderheft 25 (2000)(Falke)(DE)(Track 1 of 4)[!].iso / Updates / HD-Installer / jst_dev / sources / src / loaders / ChuckRock / chuckhd.asm < prev    next >
Assembly Source File  |  2000-04-12  |  2KB  |  133 lines

  1. ; *** Chuck Rock Hard Disk Loader V1.0
  2. ; *** Written by Jean-François Fabre
  3.  
  4.     include    "jst.i"
  5.  
  6.  
  7.     HD_PARAMS    "ChuckRock.d",STD_DISK_SIZE,2
  8.  
  9. loader:
  10.     Mac_printf    "Chuck Rock Floppy/CD32 HD Loader V1.1a"
  11.     Mac_printf    "Coded by Jean-François Fabre © 1997"
  12.  
  13.     JSRABS    LoadDisks
  14.  
  15.     moveq.l    #0,D0
  16.     move.l    #-1,D1
  17.     JSRABS    Degrade
  18.  
  19.     GO_SUPERVISOR
  20.     SAVE_OSDATA    $80000
  21.  
  22.     lea    $80000,A7
  23.     lea    $10000,A3
  24.     move.w    #$7FFF,dmacon+$DFF000
  25.  
  26.     ; **** boot stuff and patch
  27.  
  28.     JSRGEN    InitTrackDisk
  29.  
  30.     MOVE.L    A3,40(A1)        ;2C: 234B0028
  31.     MOVE.L    #$00002800,36(A1)    ;30: 237C000028000024
  32.     MOVE.L    #$0009D200,44(A1)    ;38: 237C0009D200002C
  33.     MOVE    #$0002,28(A1)        ;40: 337C0002001C
  34.     JSRGEN    TrackLoad
  35.  
  36.     PATCHUSRJMP    $11E14,ReadSectors    ; load
  37.     move.l    #$6000092A,$11474        ; remove prot
  38.     PATCHUSRJMP    $11DC2,PatchLoader1
  39.  
  40.     MOVEA.L    $8.W,A5
  41.  
  42.     JMP    $1E(A3)
  43.  
  44.  
  45. ReadSectors:
  46.     move.l    currdisk(pc),D0
  47.     JSRGEN    ReadRobSectors
  48.     tst.l    D0
  49.     rts
  50.  
  51.  
  52. PatchLoader1:
  53.     JSRGEN    GoECS
  54.  
  55.     ; ** patch rob load #2
  56.  
  57.     PATCHUSRJMP    $29A0,ReadSectors
  58.     PATCHUSRJMP    $613EE,ReadSectors
  59.  
  60.     ; ** restore the protection
  61.  
  62.     move.l    #$487A000A,$2000.W
  63.  
  64.     ; ** patch next load
  65.  
  66.     PATCHUSRJMP    $613A0,PatchLoader2
  67.  
  68.     JSRGEN    FlushCachesHard
  69.     JMP    $60000
  70.  
  71. PatchLoader2:
  72.     PATCHUSRJSR    $9670,kbint
  73.     PATCHUSRJSR    $159A4,DiskChange
  74.     PATCHUSRJSR    $14C40,EmuSpace
  75.     move.w    #$4E71,$14C46
  76.     PATCHUSRJSR    $14C64,EmuSpace
  77.     move.w    #$4E71,$14C6A
  78.  
  79.     ; ** disk load
  80.  
  81.     PATCHUSRJMP    $16488,ReadSectors
  82.  
  83.     ; ** remove another fucking protection
  84.  
  85.     move.l    #$6000093A,$15ADC
  86.  
  87.     ; ** and go
  88.  
  89.     JSRGEN    FlushCachesHard
  90.     jmp    $1000.W
  91.  
  92. DiskChange:
  93.     move.l    A0,-(sp)
  94.     lea    currdisk(pc),A0
  95.     move.l    #1,(a0)
  96.     move.l    (sp)+,A0
  97.     JMP    $1644A        ; load track
  98.  
  99. kbint:
  100.     move.b    D0,$964D
  101.     cmp.b    #$59,D0
  102.     bne    noquit$
  103.     JSRGEN    InGameExit
  104. noquit$
  105.     rts
  106.  
  107. EmuSpace:
  108.     btst    #6,$BFE001
  109.     beq    quit$
  110.  
  111.     cmp.w    #$40,($964C)
  112.     beq    exit$
  113.  
  114.     movem.l    D0/A0,-(sp)
  115.     move.w    #$CC01,$DFF034
  116.     moveq.l    #3,D0
  117.     JSRGEN    BeamDelay
  118.     move.w    $DFF016,D0
  119.     move.w    #$CC01,$DFF034
  120.     btst    #14,D0
  121.     movem.l    (sp)+,D0/A0
  122. exit$
  123.     rts
  124.  
  125. quit$
  126.     JSRGEN    InGameExit
  127.     bra    quit$
  128.  
  129.  
  130.  
  131. currdisk:
  132.     dc.l    0
  133.